Questo progetto si pone l'obiettivo di sviluppare un editor di scene virtuali come  web application utilizzando le ultime tecnologie a disposizione per il 3d nel web, frutto di un processo evolutivo e di standardizzazione iniziato circa venti anni fa, per testarne le potenzialità e comprendere il grado di maturità raggiunto.

Si pensi ad un supermercato. Si immagini questo ambiente riprodotto in uno scenario virtuale. Due sono gli attori principali in gioco: il cliente, che si muove all'interno dell'ambiente, osserva e sceglie tra gli oggetti esposti cosa acquistare, e il gestore, che si occupa di predisporre ed organizzare gli scaffali con i prodotti a disposizione. Il gestore dunque configura la scena per il cliente. In uno spazio virtuale il gestore necessita di uno strumento, un editor che gli consenta di inserire, posizionare ed eliminare gli oggetti (in questo caso i prodotti del supermercato) e di salvare le proprie modifiche rendendole disponibili all'utente.

Il semplice caso d'uso descritto delinea un'applicazione di tipo gestionale, in cui diversi utenti accedono con vari livelli di autorizzazione ai servizi messi a disposizione. È facile pensare da subito ad un software per il desktop come alla soluzione più naturale e semplice da implementare, vista anche la necessità di rappresentare una scena 3d con la quale l'utente possa interagire. Negli ultimi anni si è però assistito ad un fiorire di web applications sempre più complesse, dalle “office suite” fino ai gestionali per aziende e programmi per il photo ed il video editing.

Seguendo perciò questo trend di migrazione delle applicazioni dal desktop al web, si fa strada l'idea di avere un editor 3d come quello descritto interamente in un browser. Possibilità questa interessante per tutti i vantaggi che una web application porta con s\'{e}, quali la compatibilità cross-platform, nessuna installazione e update lato utente grazie all'utilizzo del browser come thin-client, facilità di integrazione con servizi web e possibilità di funzionalità avanzate (e.g. editing collaborativo). Sorgono però alcune domande. Quali tecnologie ci sono a disposizione per il 3d nel web oggi? Sono abbastanza mature per realizzare un applicazione affidabile e performante? Quali svantaggi presentano? 

Il compito di trovare una risposta a queste domande è affidato alla prima parte di questo lavoro. Dapprima verranno introdotte le possibili soluzioni presenti nell'era ante web 2.0 quali i linguaggi VRML prima e X3D poi, integrati nei browser tramite plugins di terze parti. Si analizzeranno in seguito i motivi per i quali queste non hanno avuto il successo sperato. Da questo piccolo fallimento si vedrà poi come nasce l'idea di un web 3d senza plugin, “nativo”, e quali tecnologie lo rendono possibile. Si parlerà dunque della specifica HTML5, ancora in via di definizione che grazie alle novità introdotte pone le basi per il 3D nel web, di WebGL, un nuovo standard promosso dal Khronos Group che definisce un interfaccia di programmazione di basso livello per la creazione di contenuti 3D all'interno di un browser web, e di x3dom, un motore javascript che consente l'introduzione di elementi X3D come parte del DOM di una pagina HTML5 e che fa uso dell'API WebGL per visualizzarli.

L'unico modo di testare efficacemente questo sempre più fiorente intreccio di tecnologie è effettuare una prova sul campo. Il software Medea, fulcro di questo lavoro, nasce esattamente a questo scopo. Nella seconda parte si analizzeranno le specifiche funzionali e le caratteristiche tecniche del software. Si vedrà come sono state utilizzate ed interconnesse le tecnologie di cui sopra per raggiungere gli obiettivi prefissati. Si cercherà di valutare l'efficienza e l'usabilità della soluzione proposta, al fine di individuare e comprendere quali siano i pregi e quali i difetti e i limiti di questa implementazione di 3D nel web. Obiettivo finale è comprendere se queste tecnologie siano pronte e mature per supportare un'applicazione di produzione completa, performante, cross-platform e user-friendly.
